# 作者：yjh2011@live.com
# 功能：发送邮件
# 输入：字符串
# subject   ：主题
# content   ：内容
# mail_host ：邮件主机
# mail_user ：用户名
# mail_pass ：密码
# sender    ：发件人地址
# receivers ：收件人地址
# 输出：
# True          ：成功
# (False, e)    ：失败，
# e             ：smtplib.SMTPException

import smtplib
from email.mime.text import MIMEText


def send_email(subject='主题', content='邮件内容',
               mail_host=None, mail_user=None, mail_pass=None,
               sender=None, receivers=None):
    # 设置服务器所需信息
    if not mail_host:
        mail_host = input('服务器地址：')
    # 163用户名
    if not mail_user:
        mail_user = input('邮件账户：')
    # 密码(部分邮箱为授权码)
    if not mail_pass:
        mail_pass = input('密码：')
    # 邮件发送方邮箱地址
    if not sender:
        sender = input('发件人邮箱：')
    # 邮件接受方邮箱地址，注意需要[]包裹，这意味着你可以写多个邮件地址群发
    if not receivers:
        receivers = [input('收件人邮箱：')]
    else:
        receivers = [receivers]

    # 设置email信息
    # 邮件内容设置
    message = MIMEText(content, 'plain', 'utf-8')
    # 邮件主题
    message['Subject'] = subject
    # 发送方信息
    message['From'] = 'Auto Notification'
    # 接受方信息
    message['To'] = receivers[0]

    # 登录并发送邮件
    try:
        smtpObj = smtplib.SMTP()
        # 连接到服务器
        smtpObj.connect(mail_host, 25)
        # 登录到服务器
        smtpObj.login(mail_user, mail_pass)
        # 发送
        smtpObj.sendmail(
            sender, receivers, message.as_string())
        # 退出
        smtpObj.quit()
        print('mail success')
        return True
    except smtplib.SMTPException as e:
        print('mail error', e)  # 打印错误
        return False, e
